从vmware到docker |
您所在的位置:网站首页 › docker containers目录内容 › 从vmware到docker |
docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 docker与vmware区别1.VMware是属于完全虚拟机化,而docker则是轻量级虚拟化(只虚拟出来容器所需要的资源) 2.传统的虚拟机是虚拟一整套硬件后,在其运行一个完整的操作系统,而容器内的应用进程直接运行于宿主的内核,容器没有自己的内核并且也没有进行硬件虚拟。 3.VMware对硬件的利用率在30%左右,而docker对硬件的利用率在60%-80%左右。 4.但是docker相当对于虚拟机来说安全性没有那么高 可以这么理解docker本身他不是容器,他只是负责管理容器 dockers基础知识镜像(images):静态文件, 默认拉取镜像是采用的是http/https(加了一层安全协议)协议。可类比为vmware的iso镜像 容器(container):动态,有生命周期(启动就有没启动就没有,up)容器与容器之间是相互隔离的(共享资源)。可类比为vmware中创建的虚拟机,ova这些的。 仓库(registry):有几十万个镜像(公共仓库,都是大家推上去的镜像然后共享)dockerhub从这里拉取镜像会非常慢(因为是国外的网站) 阿里云注册(建议可以注册一个方便学习使用)获得阿里云加速器(daemon.json)。可类比为镜像的github。 docker安装Linux docker 安装使用官方安装脚本自动安装 安装命令如下: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun或者使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh手动安装(略,菜鸟教程上有,感觉比较麻烦) windows docker 安装windows docker 安装 Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。 在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。 docker镜像加速docker国内加速器国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如: 科大镜像:https://docker.mirrors.ustc.edu.cn/网易:https://hub-mirror.c.163.com/阿里云:https://.mirror.aliyuncs.com七牛云加速器:https://reg-mirror.qiniu.com当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。 阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了: Ubuntu16.04+、Debian8+、CentOS7对于使用systemd的系统,请在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件): {"registry-mirrors":["https://reg-mirror.qiniu.com/"]}之后重新启动服务: $ sudo systemctl daemon-reload$ sudo systemctl restart docker检查加速器是否生效检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。 $ docker infoRegistry Mirrors:https://reg-mirror.qiniu.comdocker使用代理拉取镜像1、创建配置目录 sudo mkdir -p /etc/systemd/system/docker.service.d2、添加环境变量 sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf在配置文件中添加以下内容(其中,proxy-addr为虚拟机ip地址,port为端口号(Clash是7890): [Service]Environment="HTTP_PROXY=http://proxy-addr:port/" # 代理服务器地址Environment="HTTPS_PROXY=http://proxy-addr:port/" # httpsEnvironment="NO_PROXY=localhost,127.0.0.1" # 哪些地址不需要走代理3、更新配置并重启服务 sudo systemctl daemon-reloadsudo systemctl restart docker`4、验证 docker search centos不报错即docker代理设置成功。 docker使用使用流程:拉取镜像--使用容器 Docker镜像使用查找镜像我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。 runoob@runoob:~$ docker search httpdNAME: 镜像仓库源的名称 DESCRIPTION: 镜像的描述 OFFICIAL: 是否 docker 官方发布 stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。 AUTOMATED: 自动构建 拖取镜像我们决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像 删除镜像镜像删除使用 docker rmi 命令,比如我们删除 httpd 镜像: $ docker rmi httpd(镜像名或镜像id)列出镜像docker image ls -adocker imagesREPOSITORY:镜像所在的仓库名称TAG:镜像标签IMAGEID:镜像IDCREATED:镜像的创建日期(不是获取该镜像的日期)SIZE:镜像大小Docker容器使用获取镜像如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像: $ docker pull ubuntu启动容器以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器: $ docker run -it ubuntu /bin/bash参数说明: -i: 交互式操作。 -t: 终端。 ubuntu: ubuntu 镜像。 /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 要退出终端,直接输入 exit: root@ed09e4490c57:/# exit停止一个容器停止容器的命令如下: $ docker stopdocker restart 重启: $ docker restart 启动已停止运行的容器查看所有的容器命令如下: $ docker ps -a使用 docker start 启动一个已停止的容器: $ docker start b750bbbcfd88 后台运行在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d指定容器的运行模式。 $ docker run -itd --name ubuntu-test ubuntu /bin/bash注:加了 -d参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到) 进入容器在使用 -d参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入: docker attach:如果从这个容器退出,会导致容器的停止。 docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。 attach 命令 $ docker attach注意:如果从这个容器退出,会导致容器的停止。 exec 命令 下面演示了使用 docker exec 命令。 docker exec -it /bin/bash导出和导入容器可以理解成vmware虚拟机文件打包成的压缩包 导出容器如果要导出本地某个容器,可以使用 docker export命令。 $ docker export 1e560fca3906 > ubuntu.tar这样将导出容器快照到本地文件。 导入容器快照可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1: $ cat docker/ubuntu.tar | docker import - test/ubuntu:v1删除容器下面的命令可以清理掉所有处于终止状态的容器。 $ docker container prune 类似与删除vmware中的虚拟机 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |